using System;

namespace PTP.Core
{
	/// <summary>
	/// Device that implements mandatory PTP commands.
	/// List of mandatory commands can be found in PIMA 15740:2000 "Table 35: Operation Implementation Conformance" 
	/// </summary>
	public interface IPTPDevice
	{
		DeviceInfo GetDeviceInfo();
		void OpenSession(uint sessionID);
		void CloseSession();
		uint[] GetStorageIDs(); //TODO: Should storageIDs have own class or struct? Each StorageID has two parts. The sixteen most significant bits represent a physical storage device, while the lower sixteen least significant bits represent a logical storage area within a physical store.
		StorageInfo GetStorageInfo(uint storageID);
		void InitiateCapture();
	}
}
